#!/bin/bash

# Auto-SSL 别名修复脚本
# 查找并删除旧的别名，设置正确的新别名

echo "🔧 Auto-SSL 别名修复工具"
echo "========================"
echo ""

# 检查是否为root用户
if [ "$EUID" -ne 0 ]; then
    echo "❌ 错误: 请使用root权限运行此脚本"
    echo "请使用: sudo bash fix-alias.sh"
    exit 1
fi

echo "🔍 第1步: 查找现有的 auto-ssl 别名配置"
echo "======================================="
echo ""

# 定义要搜索的配置文件
config_files=(
    "/root/.bashrc"
    "/root/.bash_profile" 
    "/root/.profile"
    "/etc/profile"
    "/etc/bash.bashrc"
    "/etc/bashrc"
)

# 搜索配置目录
config_dirs=(
    "/etc/profile.d/"
    "/root/.config/"
)

# 存储找到别名的文件
found_files=()

echo "搜索配置文件中的 auto-ssl 别名..."

# 搜索配置文件
for file in "${config_files[@]}"; do
    if [ -f "$file" ]; then
        if grep -q "auto-ssl" "$file" 2>/dev/null; then
            echo "   ✅ 找到配置: $file"
            grep -n "auto-ssl" "$file" | sed 's/^/      /'
            found_files+=("$file")
        fi
    fi
done

# 搜索配置目录
for dir in "${config_dirs[@]}"; do
    if [ -d "$dir" ]; then
        while IFS= read -r -d '' file; do
            if grep -q "auto-ssl" "$file" 2>/dev/null; then
                echo "   ✅ 找到配置: $file"
                grep -n "auto-ssl" "$file" | sed 's/^/      /'
                found_files+=("$file")
            fi
        done < <(find "$dir" -type f -print0 2>/dev/null)
    fi
done

echo ""

if [ ${#found_files[@]} -eq 0 ]; then
    echo "⚠️  未在配置文件中找到 auto-ssl 别名"
    echo "问题可能在其他地方，继续检查..."
else
    echo "📝 第2步: 备份并清理旧的别名配置"
    echo "================================="
    echo ""
    
    # 备份和清理找到的文件
    for file in "${found_files[@]}"; do
        echo "   处理文件: $file"
        
        # 创建备份
        backup_file="${file}.backup.$(date +%Y%m%d_%H%M%S)"
        cp "$file" "$backup_file"
        echo "   ✅ 备份到: $backup_file"
        
        # 删除包含 auto-ssl 的行
        sed -i '/auto-ssl/d' "$file"
        echo "   ✅ 已删除 auto-ssl 相关行"
    done
    echo ""
fi

echo "🔧 第3步: 设置正确的 auto-ssl 别名"
echo "================================="
echo ""

# 检查主脚本是否存在
main_script="/usr/local/bin/auto_ssl_universal.py"
if [ ! -f "$main_script" ]; then
    echo "❌ 错误: 主脚本不存在: $main_script"
    echo "请先安装 Auto-SSL:"
    echo "curl -sSL https://gitee.com/tght1211/auto-ssl/raw/master/install.sh | sudo bash"
    exit 1
fi

# 确定要使用的配置文件
target_file="/root/.bashrc"
if [ ! -f "$target_file" ]; then
    echo "创建 $target_file 文件..."
    touch "$target_file"
fi

echo "设置新的 auto-ssl 别名到: $target_file"

# 添加新的别名配置
cat >> "$target_file" << 'EOF'

# Auto-SSL v2.0 别名配置 (自动生成)
alias auto-ssl='python3 /usr/local/bin/auto_ssl_universal.py'
EOF

echo "   ✅ 别名配置已添加"

echo ""

echo "✅ 第4步: 验证修复结果"
echo "===================="
echo ""

# 重新加载配置
echo "重新加载 shell 配置..."
source "$target_file"

# 测试别名
echo "测试新的 auto-ssl 别名:"
if alias auto-ssl >/dev/null 2>&1; then
    echo "   ✅ 别名已生效:"
    alias auto-ssl | sed 's/^/      /'
    
    echo ""
    echo "测试命令执行:"
    if python3 /usr/local/bin/auto_ssl_universal.py --version 2>/dev/null; then
        echo "   ✅ 命令执行成功"
    else
        echo "   ❌ 命令执行失败"
    fi
else
    echo "   ⚠️  别名未立即生效，需要重新登录或手动source"
fi

echo ""

echo "🎉 修复完成！"
echo "============"
echo ""
echo "📋 使用说明:"
echo "1. 重新登录 SSH 或运行: source /root/.bashrc"
echo "2. 然后您可以使用: auto-ssl --help"
echo ""
echo "🔧 可用命令:"
echo "   auto-ssl --help          # 查看帮助"
echo "   auto-ssl --version       # 查看版本"
echo "   auto-ssl bt              # 宝塔面板模式"
echo "   auto-ssl                 # 通用模式"
echo "   auto-ssl --renew         # 手动续期证书"
echo ""
echo "📂 备份文件位置:"
for file in "${found_files[@]}"; do
    backup_file="${file}.backup.$(date +%Y%m%d_%H%M%S)"
    if [ -f "$backup_file" ]; then
        echo "   $backup_file"
    fi
done

echo ""
echo "💡 如果仍有问题，请重新登录 SSH 会话!"
